#include<stdio.h>
/*
试设计一个算法，将数组An 中的元素A[0]至A[n-1]循环右移k位，
并要求只用一个元素大小的附加存储，元素移动或交换次数为O(n)
*/
int a[10]={0,1,2,3,4,5,6,7,8,9};

void move(int b,int c){
    for(;b<c;b++,c--){
        int temp =a[c];
        a[c]=a[b];
        a[b]=temp;
    }
}
void done(int n,int k){
    k%=n;
    move(0,n-k-1);
    move(n-k,n-1);
    // move(0,n-1);
}

int main(){
    
    done(10,3);
    for(int i=0;i<10;i++)
        printf("%d ",a[i]);
    return 0;
}